package com.ksd.modules.special.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ksd.common.po.BatchIdsPO;
import com.ksd.commons.IBaseService;
import com.ksd.modules.special.entity.AdminSpecialCommentReply;
import com.ksd.modules.special.po.AdminSpecialCommentReplySavePO;
import com.ksd.modules.special.po.AdminSpecialCommentSearchPO;
import com.ksd.modules.special.vo.AdminSpecialCommentReplyVo;

import java.util.List;

public interface IAdminSpecialCommentReplyService extends IBaseService<AdminSpecialCommentReply> {

    /**
     * 查询列表
     * @param adminSpecialCommentSearchPO
     * @return
     */
    Page<AdminSpecialCommentReplyVo> findAdminSpecialCommentReplys(AdminSpecialCommentSearchPO adminSpecialCommentSearchPO);

    /**
     * 保存和修改
     * @param adminSpecialCommentReplySavePO
     * @return
     */
    AdminSpecialCommentReplyVo saveUpdateAdminSpecialCommentReply(AdminSpecialCommentReplySavePO adminSpecialCommentReplySavePO);

    /**
     * 根据ID获取明细
     * @param id
     * @return
     */
    AdminSpecialCommentReplyVo getAdminSpecialCommentReplyById(Long id);

    /**
     * 单个物理删除
     * @return
     */
    Boolean removeAdminSpecialCommentReplyById(Long id);

    /**
     * 批量物理删除
     * @param batchIdsPO
     * @return
     */
    Boolean batchRemovesAdminSpecialCommentReply(BatchIdsPO batchIdsPO);

    /**
     * 修改状态
     * @param id
     * @param column
     * @param value
     * @return
     */
    boolean updateStatus(Long id,String column,Integer value);

    /**
     * 修改状态
     * @param id
     * @param column
     * @param value
     * @return
     */
    boolean updateStatusStr(Long id,String column,String value);

    /**
     * 批量上架
     *
     * @param batchIdsPO
     * @return
     */
    Boolean batchDowns(BatchIdsPO batchIdsPO);

    /**
     * 批量上架
     *
     * @param batchIdsPO
     * @return
     */
    Boolean batchUps(BatchIdsPO batchIdsPO);


    /**
     * 删除子评论
     * @param parentId
     * @return
     */
    Boolean removeByParentId(Long parentId);

    /**
     * 删除子评论
     * @param parentIds
     * @return
     */
    Boolean batchRemoveByParentId(List<Long> parentIds);

    /**
     * 批量通过子回复
     * @param parentId
     * @return
     */
    Boolean updateStatusByParentId(Long parentId,String column,Integer value);
    Boolean updateStatusByParentId(Long parentId,String column,String value);

    /**
     * 批量通过所有的评论
     * @param parentIds
     * @return
     */
    Boolean batchUpdateStatusByParentIds(List<Long> parentIds,String column,Integer value);

}
